unit clsMensagem;

interface

uses dm, dbtables, biblio;

type
  TMensagem = class(TObject)
  public
    Texto: string;
    function Recuperar(Cod_Mensagem: string): boolean;
    function Retorna_Ultima: string;
    procedure Gravar(Cod_Mensagem: string);
    procedure Excluir(Cod_Mensagem: string);
    procedure Consultar(var tq: TQuery);
  end;

implementation

procedure TMensagem.Gravar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(DmInt);
  tq.databasename := dmint.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.params.clear;
  tq.sql.add('Select * from Mensagem where Cod_Mensagem=:a');
  tq.params[0].asstring := Cod_Mensagem;
  tq.open;
  if tq.eof then begin
    tq.close;
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('Insert into Mensagem values (' +
      ':k_Cod_Mensagem             ,' +
      ':k_Texto                    )');
  end else begin
    tq.close;
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('Update Mensagem set         ' +
      'Texto=:k_Texto              ' +
      'where                       ' +
      'Cod_Mensagem=:k_Cod_Mensagem');
  end;
  tq.parambyname('k_Cod_Mensagem').asstring := Cod_Mensagem;
  tq.parambyname('k_Texto').asblob := Texto;
  tq.execsql;
  tq.close;
  tq.Free;
end;

procedure TMensagem.Excluir;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := dmint.db.databasename;
  tq.active := False;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('Delete from Mensagem where Cod_Mensagem=:a');
  tq.params[0].asstring := Cod_Mensagem;
  tq.execsql;
  tq.close;
  tq.Free;
end;

function TMensagem.Recuperar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := dmint.db.databasename;
  tq.active := False;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('Select * from Mensagem where Cod_Mensagem=:a');
  tq.params[0].asstring := Cod_Mensagem;
  tq.open;
  if tq.eof then result := false else result := true;
  Texto := tq.fieldbyname('Texto').asstring;
  tq.close;
  tq.free;
end;

function TMensagem.Retorna_Ultima;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := dmint.db.databasename;
  tq.active := False;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('Select max(Cod_Mensagem) ultimo from Mensagem');
  tq.open;
  if tq.fieldbyname('ultimo').asstring = '' then
    result := '001'
  else
    result := strzero(tq.fieldbyname('ultimo').asinteger + 1, 3);
  tq.close;
  tq.Free;
end;

procedure TMensagem.Consultar;
begin
  tq.close;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('Select * from Mensagem order by Cod_Mensagem');
  tq.open;
end;

end.
